package com.lst.tools.redis.service;

import com.lst.tools.basics.function.NoneParamFunction;

/**
 * @author: Frank
 * @date: 2019/09/24 13:51
 * @version: V1.0
 */
public interface IRedissonService {

    /**
     * 分布式锁包裹方法
     *
     * @param lockName  锁名字
     * @param waitTime  阻塞等待时长   单位：秒
     * @param leaseTime 自动解锁时间   单位：秒
     * @param fun       处理逻辑
     * @return
     */
    <T> T tryLockExecute(String lockName, int waitTime, int leaseTime, NoneParamFunction<T> fun);
}
